import {reactive} from 'vue'
import {Refresh, Search} from '@element-plus/icons-vue'
import buttonAction from './component/buttonAction'
import $button from '@/button'
import {pagingVideo} from '@/api/resource/video'

export const tableItem = reactive({
    select: true,
    index: false,
    tree: true,
    expandAll: true,
    align: 'center',
    column: [
			{
				label: '名称',
				prop: 'name',
				align: 'center',
			},
			{
				label: '课程类型',
				prop: 'courseTypeName',
				align: 'center',
			},
			{
				label: '章节目录',
				prop: 'chapterCatalogName',
				align: 'center',
			},
			{
				label: '类型',
				prop: 'typeName',
				align: 'center',
			},
			{
				label: '讲师',
				prop: 'teacherName',
				align: 'center',
			},
		{
			label: '视频大小',
			align: 'center',
			htmlContent: row => {
				return `<span>${row.size? (row.size + 'M') : ''}</span>`
			},
		},
		{
			label: '视频时长',
			prop: 'durationFormatValue',
			align: 'center',
		},
			{
				label: '关联题库',
				prop: 'bankName',
				align: 'center',
				tooltip: true,
			},
		{
			label: '上架状态',
			prop: 'publishedFlag',
			align: 'center',
			htmlContent: row => {
				return `<span>${row.publishedFlag == 1? '上架' : '下架'}</span>`
			},
		},
		{
			label: '上传时间',
			prop: 'uploadTime',
			align: 'center',
		},
        {
            label: '说明',
            prop: 'remark',
            align: 'center',
        },
        {
            label: '操作',
            prop: 'action',
            align: 'center',
						width: '250px',
            component: buttonAction,
        }
    ],
    pageInfo: {
        request: {
			'name': '',
			'teacherId': '',
			'courseType': '',
			'type': '',
			'uploadStartTime': '',
			'uploadEndTime': '',
			'publishedFlag': '',
            'pageDomain': {
                'pageNum': '1',//分页页面数
                'pageSize': '10',//分页页面数据大小
                'orderByColumn': '',//搜索参数
                'isAsc': '',//搜索参数
                'reasonable': ''//搜索参数
            }
        },
        pagesClose: false,//是否开启分页
        url: '',//分页路由，不传的话需要传入自定义的分页函数paging 传入时定义的分页函数paging会失效
        method: 'POST',//分页请求方法，不传默认为POST
        // 分页函数paging
        paging: function () {
			pagingVideo(tableItem.pageInfo.request).then(res => {
                tableItem.tableData.data = res.rows
                tableItem.tableData.total = res.total
            })
        }
    },
    // 分页数据 自定义分页函数paging时需要把值赋给tableData
    tableData: {
        total: '',//分页总计
        // 分页数据
        rows: []
    },
    // 操作栏按钮
    btnArray: [
        {
            label: '详情',
            type: 'primary',
            plain: true,//镂空按钮  优先文字按钮
            text: true,//文字按钮
            customParameters: 'view',//自定义函数参数
            show: true,//是否显示
            // 按钮方法
            handle: function (row) {
            }
        },
		{
			label: '修改',
			type: 'primary',
			plain: true,//镂空按钮  优先文字按钮
			text: true,//文字按钮
			customParameters: 'edit',//自定义函数参数
			show: true,//是否显示
			// 按钮方法
			handle: function (row) {
			}
		},
		{
			label: '预览',
			type: 'primary',
			plain: true,//镂空按钮  优先文字按钮
			text: true,//文字按钮
			customParameters: 'edit',//自定义函数参数
			show: true,//是否显示
			// 按钮方法
			handle: function (row) {
			}
		},
		{
			label: '上架',
			type: 'primary',
			plain: true,//镂空按钮  优先文字按钮
			text: true,//文字按钮
			customParameters: 'edit',//自定义函数参数
			show: true,//是否显示
			// 按钮方法
			handle: function (row) {
			}
		},
		{
			label: '下架',
			type: 'danger',
			plain: true,//镂空按钮  优先文字按钮
			text: true,//文字按钮
			customParameters: 'edit',//自定义函数参数
			show: true,//是否显示
			// 按钮方法
			handle: function (row) {
			}
		},
    ],
    moreBtnArrayText: '',
    moreBtnArray: [],
    // 选择框触发
    selectChange: function (row) {
    },
}
)

export const operationItem = reactive({
    defaultSearch: false,
    defaultRefresh: false,
    SearchItem: [
        {
            code: 'name',
            name: '名称',
            type: 'input',
            placeholder: '请输入名称',
        },
        {
            code: 'teacherId',
            name: '讲师',
            type: 'select',
			options: [],
        },
        {
            code: 'courseType',
            name: '课程类型',
            type: 'cascader',
			options: [],
			props: {label:'name',value:'id',children:'children',emitPath:false}
        },
		{
			code: 'type',
			name: '类型',
			type: 'select',
			options: [],
		},

		{
			code: 'publishedFlag',
			name: '上架状态',
			type: 'select',
			placeholder: '请选择上架状态',
			options: [
				{ label: '上架', value: 1 },
				{ label: '下架', value: 0 }
			]
		},
			{
				code: ['uploadStartTime',
					'uploadEndTime',], //
				startName: '上传开始日期', //默认是开始时间 type为 daterange生效
				rangeName: '', //默认是至 type为 daterange生效
				endName: '上传结束日期', //默认是结束时间 type为 daterange生效
				valueFormat: '', //默认是YYYY-MM-DD
				placeholder: '请选择上传日期', //默认是请选择日期type为date生效
				type: 'daterange', //daterange或date
			},
			{
				code: 'chapterCatalog',
				name: '章节目录',
				type: 'select',
				options: [],
			},
		],
    menuArray: [
        {
            show: true,
            type: '',
            text: '重置',
            icon: Refresh,
            handle: () => {
            }
        },
        {
            show: true,
            type: 'primary',
            text: '查询',
            icon: Search,
            handle: () => {
            }
        },
		{
			show: true,
			type: 'danger',
			hasPermi:[$button.personpersonexport||null],
			text: '批量删除',
			handle: () => {
			}
		},
		{
			show: true,
			type: 'primary',
			hasPermi:[$button.personpersonexport||null],
			text: '新建',
			handle: () => {
			}
		},
		{
			show: true,
			type: 'primary',
			hasPermi:[$button.personpersonexport||null],
			text: '导入',
			handle: () => {
			}
		},
        {
            show: true,
            type: 'primary',
            hasPermi:[$button.personpersonexport||null],
            text: '导出',
            handle: () => {
            }
        },
    ]
})


